Method and/or system for transforming between trees and arrays

ABSTRACT

Embodiments of articles, apparatuses, devices and/or systems for manipulating hierarchical sets of data are disclosed.

RELATED APPLICATION

This application claims priority to U.S. Provisional Patent ApplicationSer. No. 60/667,448 filed Mar. 31, 2005, entitled METHOD AND/OR SYSTEMFOR TRANSFORMING BETWEEN TREES AND ARRAYS, assigned to the assignee ofclaimed subject matter.

BACKGROUND

This disclosure is related to hierarchical data arrangements and, moreparticularly, to manipulating such data arrangements.

In a variety of fields, data or a set of data, may be represented in ahierarchical fashion. This form of representation may, for example,convey information, such as particular relationships between particularpieces of data and the like. However, manipulating such datarepresentations is not straight-forward, particularly where the data isarranged in a complex hierarchy. Without loss of generality, one examplemay include a relational database. Techniques for performing operationson such a database, for example, are computationally complex orotherwise cumbersome. A continuing need, therefore, exists foradditional techniques for manipulating data hierarchies.

BRIEF DESCRIPTION OF THE DRAWINGS

Subject matter is particularly pointed out and distinctly claimed in theconcluding portion of the specification. Claimed subject matter,however, both as to organization and method of operation, together withobjects, features, and advantages thereof, may best be understood byreference of the following detailed description when read with theaccompanying drawings in which:

FIG. 1 is a schematic diagram of an unordered tree;

FIG. 2 is a table illustrating an embodiment of a relationship betweenbinary edge labeled trees (BELTs) and positive natural numerals;

FIG. 3 is a schematic diagram of an unlabeled tree according to anembodiment;

FIG. 4 is a flow diagram illustrating a process of transforming betweena tree and a condensed array according to an embodiment;

FIGS. 5 through 12 are schematic diagrams of trees illustrating aprocess to transform between a tree and a condensed array according toan embodiment;

FIG. 13A is a flow diagram illustrating a process of transformingbetween a condensed array and a tree according to a particularembodiment;

FIG. 13B is an array associating frontier nodes of a BELT with numeralsaccording to an embodiment;

FIGS. 14 through 18 are schematic diagrams of trees illustrating aprocess to transform between a BELT and a condensed array according toan embodiment;

FIGS. 19 through 24 are schematic diagrams of trees illustrating atransformation of an unlabeled tree to a BELT according to anembodiment;

FIG. 25 is a schematic diagram associating particular node label valueswith portions of BELTs according to an embodiment of the BELT shown inFIG. 19;

FIG. 26 is a flow diagram illustrating a process of associating nodelabel values with BELTs and/or portions of BELTs according to anembodiment;

FIG. 27 is a table illustrating a particular embodiment of anassociation between numerals and BELTs and/or portions of BELTs;

FIG. 28 illustrates a representation of node label values as a portionof a BELT according to an embodiment; and

FIG. 29 is a table illustrating a particular embodiment of anassociation between natural numerals and BELTs.

LIST OF APPENDICES

Appendix I comprises an array of pre-computed non-composite numerals.

DETAILED DESCRIPTION

In the following detailed description, numerous specific details are setforth to provide a thorough understanding of claimed subject matter.However, it will be understood by those skilled in the art that claimedsubject matter may be practiced without these specific details. In otherinstances, well-known methods, procedures, components and/or circuitshave not been described in detail so as not to obscure claimed subjectmatter.

Some portions of the detailed description which follow are presented interms of algorithms and/or symbolic representations of operations ondata bits or binary digital signals stored within a computing system,such as within a computer or computing system memory. These algorithmicdescriptions and/or representations are the techniques used by those ofordinary skill in the data processing arts to convey the substance oftheir work to others skilled in the art. An algorithm is here, andgenerally, considered to be a self-consistent sequence of operationsand/or similar processing leading to a desired result. The operationsand/or processing involve physical manipulations of physical quantities.Typically, although not necessarily, these quantities may take the formof electrical and/or magnetic signals capable of being stored,transferred, combined, compared and/or otherwise manipulated. It hasproven convenient, at times, principally for reasons of common usage, torefer to these signals as bits, data, values, elements, symbols,characters, terms, numbers, numerals and/or the like. It should beunderstood, however, that all of these and similar terms are to beassociated with the appropriate physical quantities and are merelyconvenient labels. Unless specifically stated otherwise, as apparentfrom the following discussion, it is appreciated that throughout thisspecification discussions utilizing terms such as “processing,”“computing,” “calculating,” “transforming,” “factoring,” “associating,”“substituting,” “determining” and/or the like refer to the actionsand/or processes of a computing platform, such as a computer or asimilar electronic computing device, that manipulates and/or transformsdata represented as physical electronic and/or magnetic quantitiesand/or other physical quantities within the computing platform'sprocessors, memories, registers, and/or other information storage,transmission, and/or display devices. Further, unless specificallystated otherwise, processes described herein, with reference to flowdiagrams or otherwise, may also be executed and/or controlled, in wholeor in part, by such a computing platform.

In a variety of fields, data or a set of data, may be represented in ahierarchical fashion. This form of representation may, for example,convey information, such as particular relationships or patterns betweenparticular pieces of data or groups of data and the like. However,manipulating and/or even recognizing specific data representations orpatterns is not straight-forward, particularly where the data isarranged in a complex hierarchy. Without loss of generality, examplesmay include a database and further, without limitation, a relationaldatabase. Techniques for performing operations on such databases orrecognizing specific patterns, for example, are computationally complex,time consuming, and/or otherwise cumbersome. A need, therefore,continues to exist for improved techniques for performing suchoperations and/or recognizing such patterns.

As previously discussed, in a variety of fields, it is convenient and/ordesirable to represent data, a set of data and/or other information in ahierarchical fashion. In this context, such a hierarchy of data shall bereferred to as a “tree.” In a particular embodiment, a tree may comprisea finite, rooted, connected and acyclic graph. Likewise, such trees maybe either ordered or unordered. Here, ordered refers to the notion thatthere is an ordering or precedence among nodes attached to a common nodecorresponding to the order of the attached nodes shown in a graphicalillustration. An unordered tree is illustrated here, for example, inFIG. 1 by embodiment 100. As illustrated, the root of this particularembodiment encompasses node 105. In addition to 105, there are eightother nodes designated 110 to 145, respectively. Likewise, the nodes areconnected by branches referred to, in this context, as edges. Thus, thenodes of this tree are connected by eight edges. This embodiment,therefore, illustrates a finite tree that is rooted by node 105.Furthermore, the nodes are connected, meaning, in this context, that apath exists between any two nodes of the tree. The tree is likewiseacyclic, meaning here, that no path in the tree forms a completenon-backtracking loop.

As previously suggested, in a variety of contexts, it may be convenientand/or desirable to represent a hierarchy of data and/or otherinformation using a structure, such as the embodiment illustrated inFIG. 1. One particular embodiment, without loss of generality, of a treemay include edges that are labeled with data and/or other valuesrepresented as “edge label values.” Similarly, in another particularembodiment, a tree may include nodes that are labeled with data and/orvalues represented as “node label values.” However, these are merelyexamples of label values that may be associated with elements of a treeto store, represent and/or hold information, and claimed subject matteris not limited in these respects. Additionally, a tree storing, holdingand/or representing information in nodes and edges may comprise a“feature tree” in which information may be stored, held and/orrepresented in node label values and/or edge label values. Accordingly,edge labeled trees and node labeled trees comprise particular types oftrees in a greater class of trees known as feature trees. In oneparticular embodiment, such data and/or values may be limited to aparticular set of data. For example, in this context, a binary edgelabeled tree (BELT) refers to a tree in which the data and/or valuescomprise binary data, that is, in this example, either a binary one or abinary zero. Likewise, alternatively, the edges of a tree may be labeledwith three values, such as 0, 1, 2. Continuing, the edges may be labeledwith four values, five values, etc. In this context, the class of allfinite trees in which the edges are labeled with a specific number ofdistinct values, that is, in this context, values chosen from a sethaving a specific number of distinct elements, shall be referred to asedge-labeled trees (ELTs). It is likewise noted that such trees are notlimited to being labeled with the numerals previously described. Anydistinctly identifiable labels may be employed; however, in thiscontext, it shall be understood that employing numerals to label theedges is sufficiently general to encompass any sort of data labels thatmay be desirable, regardless of their form.

Throughout the discussion, the term “label value” indicates informationthat is associated with one or more elements of a tree. In particularexamples described herein, a label value may be associated with an edgeand/or a node. As in particular examples of a node label value and edgelabel provided above, a label value may store, hold and/or representinformation. In a particular embodiment, as illustrated in U.S.Provisional Application No. 60/648,950 titled “Method and/or System forTree Transformation,” filed on Jan. 31, 2005, for example, there existsa transformation between an edge labeled tree (ELT) and a node labeledtree (NLT). Here, a particular label value may take the form of a nodelabel value and/or an edge label value based, at least in part, on theform of a tree. In a particular embodiment, although claimed subjectmatter is not limited in this respect, there exists a transformationbetween BELTs and binary node labeled trees (BNLTs). It should beunderstood that the information expressed in a BELT may compriseessentially the same information represented in a BNLT having the samestructure of corresponding nodes and edges. Here, a transformation froma BELT to a BNLT may comprise assigning node label values to nodes inthe resulting BNLT the edge label values of edges in the BELT connectingcorresponding nodes to their parents. The root node in the resultingBNLT may then be assigned a null label value. Similarly, a BNLT may betransformed to a BELT using related techniques as illustrated in U.S.Provisional Application No. 60/648,950 titled “Method and/or System forTree Transformation,” filed on Jan. 31, 2005. As such, BELTs and BNLTsmay comprise members of class of trees called binary labeled trees(BLTs) in which either nodes or edges hold, store and/or represent abinary label value.

To reiterate, in this context, a tree comprises an edge labeled tree ifeach edge of the tree respectively holds, stores and/or represents avalue or piece of data. Likewise, in this context, two nodes areemployed to support an edge storing, holding and/or representing a pieceof data. At this point, it is worth noting that trees having nodes andedges, such as previously described, may be represented in a computingplatform or similar computing device through a data structure or asimilar mechanism intended to capture the hierarchical relationship ofthe data, for example. It is intended that all such embodiments areincluded within the scope of claimed subject matter.

According to an embodiment, an “unlabeled tree” or “unary tree”, whichshall be used interchangeably throughout, may represent hierarchicaldata without having any information stored, held or represented in anyof its edges or nodes (including root nodes and/or terminal nodes).Rather, such hierarchical data may be expressed in how nodes and/oredges in an unlabeled tree may relate to other nodes and/or edges.

According to an embodiment, trees or portions of trees may berepresented by natural numerals according to an association of trees andnatural numerals. Without belaboring the present discussion, additionaldescriptions of how natural numerals may be associated with trees arediscussed in greater detail below and in U.S. patent application Ser.No. 11/005,859, filed on Dec. 6, 2004, by J. J. LeTourneau, titled,“Manipulating Sets of Hierarchical Data,” assigned to the assignee ofthe presently claimed subject matter. It should be understood, however,that while the particular embodiments illustrated are directed toparticular associations of numerals and trees, there may be manyassociations of trees to numerals according to corresponding particular“association embodiments,” and claimed subject matter is not limited toany such particular association.

According to an embodiment, although claimed subject matter is notlimited in scope in this respect, a method of enumerating a set ofunordered trees may begin with enumeration of a one node binary edgelabeled tree. The one node tree, which holds no data, is associated withthe natural numeral one and has a graphical representation of a singlenode in this embodiment. For higher natural numerals, ordered trees maybe generated by a process described, for example, in “The LexicographicGeneration of Ordered Trees,” by S. Zaks, The Journal of TheoreticalComputer Science, Vol. 10(1), pp 63-82, 1980, or, “Enumerating OrderedTrees Lexicographically,” by M. C. Er, Computation Journal, Vol. 28,Issue 5, pp 538-542, 1985.

As illustrated, for this particular embodiment, the one node tree rootcomprises a single node and is associated with the natural numeral one.Thus, to obtain the tree at position two, a root node is attached andconnected to the prior root node by an edge. Likewise, here, byconvention, the edge is labeled with a binary zero. If, however, thetree formed by the immediately proceeding approach were present in theprior enumeration of trees, then a similar process embodiment isfollowed, but, instead, the new edge is labeled with a binary one ratherthan a binary zero. Thus, for example, to obtain the binary edge labeledtree for position three, a new root node is connected to the root nodeby an edge and that edge is labeled with a binary one. It should beunderstood that, while this particular embodiment associates a singlenode tree with the numeral one, and associates other trees with othernumerals based, at least in part, upon this association, otherembodiments illustrated below associate a single node tree with thenumeral zero, or different numerals. Other trees in this associationembodiment may then be based, at least in part, on this association.

Continuing with this example, to obtain the BELT for position four,observe that numeral four is the product of numeral two times numeraltwo. Thus, a union is formed at the root of two trees, where, here, eachof those trees is associated with the natural numeral two. Likewise, toobtain the BELT for position five, begin with the BELT for position twoand follow the previously articulated approach of adding a root and anedge and labeling it with a binary zero.

According to an embodiment, a “set” defines an unordered collection ofunique elements or members. For example, for the purpose ofillustration, a set may contain members or elements of a distinctclassification, such as the set of all automobiles in a parking lot of aparticular color. In a particular embodiment, for example, trees may beclassified into sets defined by certain characteristics, such as the setof binary edge labeled trees or the set of unlabeled trees, and thelike. However, this is merely an example of how trees may be classifiedinto distinct sets and claimed subject matter is not limited in thisrespect.

According to an embodiment, a “multiset” may define an unorderedcollection of possibly repeating elements or members. In a particularembodiment, for example, a multiset may count and/or enumerate multipleinstances of the same element or member.

According to an embodiment, a “transformation” defines a process bywhich elements of a first set may be mapped between and/or associatedwith elements of a second set. For example, in a particular embodiment,a transformation may map and/or associate a member of the set of treeswith a member of the set of condensed arrays containing numerals.However, this is merely an example of how a transformation may mapand/or associate members of one set to members of another set, andclaimed subject matter is not limited in these respects.

According to an embodiment, a transformation may associate and/or map anelement in a first set with an element in a second set as an “elementaryequivalent.” Here, in a particular embodiment, such a transformation mayassociate such elementary equivalent elements in different sets in aone-to-one and onto mapping in which the transformation defines forelements in a first set corresponding, unique elementary equivalents ina second set. Similarly, a transformation may also map and/or associatemembers of the second set to corresponding elementary equivalents in thefirst set. Examples of a transformations mapping and/or associatingelementary equivalent elements of different sets may be found in, forexample, “Logical Number Theory I: An Introduction,” Craig Smorynski,Springer-Verlag, 1991, p. 305. In a particular embodiment, for example,a transformation may map and/or associate trees of a first type (e.g., amember of the set of unlabeled trees, node labeled trees or BELTs) toelementary equivalent trees of a second type. However, this is merely anexample of how a transformation may map and/or associate members ofdifferent sets as elementary equivalents, and claimed subject matter isnot limited in these respects.

An “array” as referred to herein means an arrangement of information. Inone embodiment, an array may comprise one or more entries which arelocatable by one or more coordinates and/or indices. In a particularexample, a computing platform may define one or more arrays for storinginformation in a storage medium in an arrangement that enables retrievalof the stored information for processing, display, transmission and/orother purposes. However, this is merely an example of how an array maybe implemented and claimed subject matter is not limited in thisrespect.

The quantity of information that an array may be capable of representingmay be based, at least in part, upon on a capacity of a storage devicethat is used to store, hold and/or represent the information in thearray. The quantity of information that an array may be capable ofrepresenting may also be based, at least in part, upon the manner inwhich information is associated and/or represented in the array. In oneembodiment, a “sparse” array may store information in entries of anarray in which a portion of the elements have the same value, and thisvalue is a constant and/or known in advance. In many fields ofengineering, sparse arrays (in particular, arrays that consist almostentirely of zeros) are quite common. Therefore, it is worthwhile todevelop methods for handling data in such arrays.

According to an embodiment, it may be useful to transform between treesand arrays to enable computation, manipulation and/or analysis ofhierarchical data which is represented in trees. In particular, it maybe useful to transform trees to arrays for storage in a computingplatform for computation and other purposes. Here, a sparse array mayexpress a relationship among nodes in a tree. In one particular example,although claimed subject matter is not limited in this respect, thenodes of a tree may be sequentially numbered from 1 to n where n is thenumber of nodes in the tree. An n×n sparse array may identify whichnodes are connected by an edge by having a “1” entry for locations i, jin the where nodes i and j are connected by an edge (for all i=1 to nand allj=1 to n). The remaining entries may hold zeros. However, this ismerely an example of a sparse array and claimed subject matter is notlimited in these respects.

According to an embodiment, a transformation may define a relationshipbetween trees and “condensed” arrays. In a particular embodiment.although claimed subject matter is not limited in this respect, acondensed array may represent a tree using substantially lessinformation than with a sparse array. In one embodiment particularembodiment, although claimed subject matter is not limited in theserespects, a condensed array may comprise a fixed size in one or moredimensions. Where a condensed array comprises a table, for example, sucha condensed array may have a fixed number of rows and/or columns.However, this is merely an example of a condensed array and claimedsubject matter is not limited in these respects. According to aparticular embodiment, a condensed array may be used for representing atree in a compressed and/or compact format for storage in a memorydevice and/or for transmission in an information transmission medium.However, these are merely examples of applications of transformingbetween trees and condensed arrays, and claimed subject matter is notlimited in these respects.

FIG. 3 is a schematic diagram of a unary or unlabeled tree 150 accordingto an embodiment. FIG. 4 is a flow diagram illustrating a processembodiment 200 of transforming between a tree and a condensed array. Asillustrated by way of a particular example, process embodiment 200 maydefine a transformation of tree 150 to a condensed array. As will beillustrated below, and referred to throughout this particular example inthe discussion, there exists a transformation between tree 150 and thefollowing condensed array of Table 1 below:

TABLE 1 Index Substitute Numeral Substituted Numeral 1 3 127 2 5 1 3 6941 4 9 914 5 10 2 6 12 1882 7 18 881 8 20 3 9 21 628 10 24 283 11 25 Ø12 27 6731 13 33 29,108,077 14 35 Ø 15 36 12,098,522 16 39 296,189,926

In the particular embodiment of a condensed array as shown in Table 1,although claimed subject matter is not limited in this respect, a fixednumber of columns represent tree 150. Here, a first column providessubstituted numerals, a second column provides corresponding substitutenumerals, and a third column provides sequential indices associatingsubstituted numerals and corresponding substitute numerals provided inthe first and second columns. In alternative embodiments, information inTable 1 may be expressed in a condensed array comprising a fixed numberof rows which set forth the aforementioned substituted numerals,substitute numerals and sequential indices. Again, however, these aremerely examples of how a tree may be expressed in a condensed array andclaimed subject matter is not limited in these respects.

As illustrated below, FIG. 4 sets forth a process embodiment 200 totransform a tree to a condensed array. As will be discussed below,process embodiment 200 employs a relationship between trees andnon-composite numerals according to an association of trees andnumerals. Portions of a transformed tree which comprise node connectedby edges, in a particular embodiment, may be represented as subtrees.Such subtrees may be associated with numerals according to anassociation of trees and numerals as described in the aforementionedU.S. patent application Ser. No. 11/005,859, filed on Dec. 6, 2004.

FIGS. 5 through 12 are schematic diagrams of trees illustrating aprocess to transform between a tree 150 and a condensed array shownTable 1 according to a particular example of process embodiment 200 ofFIG. 4. In this particular example of process embodiment 200, for thepurposes of discussion, a unary or unlabeled tree is transformed to acondensed array. The following discussion will make reference to FIGS. 5through 12 to illustrate one particular example of a transformationbetween unary or unlabeled trees and condensed arrays. However, otherexamples of process embodiment 200, provided with reference to FIGS. 13Bthrough 18, may be applied to transformations between trees with nodeand/or edge labeled values and condensed arrays. Also, it should beunderstood that any of the particular examples of process embodiment 200described herein are merely examples of a transformation between a treeand a condensed array, and claimed subject matter is not limited inthese respects.

As pointed out above, tree 150 has no edge labels and no node labels.Accordingly, tree 150 may be referred to as an unlabeled and/or unarytree. At block, 202, non-root nodes may be associated with a zero labelvalue with the resulting tree 300 shown in FIG. 5. As illustrated fromFIG. 5, a tree may comprise a single root node but multiple terminalnodes. According to an embodiment, a tree may comprise one or more nodeswhich are “frontier nodes.” A frontier node is connected to one or morechild nodes and does not have any grandchild node or any grandchildrennodes. In other words, a frontier node has at least one child node andall nodes descending from a frontier node are terminal nodes. At block204, in the presently illustrated embodiment, frontier nodes may beidentified as nodes 301.

According to an embodiment, a tree may be expressed as one or more“subtrees” merged at the root node of the tree. A subtree is connectedto the root node of the tree at an edge and independently has propertiesof a tree, except that the subtree is part of a larger tree. Forexample, here, a subtree comprises at least a “root” node coupled by anedge to a root node of the larger tree. Additional nodes and edges maybe connected to the root node of the subtree. While a subtree maycomprise an edge connected to the root node of the tree, the size andshape of the subtree may express information like that of a tree havingthe same size and shape as the subtree. The subtrees merged together atthe root node of a tree may be referred to as “subtree children” of thetree node and any particular one of such subtrees may be referred to asa “subtree child” of the tree in this embodiment.

By extension of the above examples of subtrees, a “parent” node in atree having descendent nodes may itself comprise a root of a tree wheredescendant nodes are associated with subtree children of the parentnode. Blocks 206 through 232, according to a particular embodiment,represent portions of tree 300 as numerals to be represented in entriesof a condensed array such as the condensed array of Table 1. Beginningwith terminal nodes which are furthest removed from the root node,process embodiment 200 associates numerals with parent nodes and theirdescendant nodes based, at least in part, on an association of trees andnumerals. In the particular embodiment, a subtree child of a parent nodemay be associated with a non-composite numeral which is based, at leastin part, on one or more label values associated with the descendantsubtree. Accordingly, a parent node may represent a merger of itsdescendant subtree children as a product of non-composite numeralsrepresenting respective subtree children. In one example, this productmay be applied as a label value associated with the parent node. Asillustrated below, according to a particular embodiment, associatingsubtree children with non-composite numerals may make use of an arraycomprising a finite sequence of pre-computed non-composite numerals. Toaddress finiteness of such a sequence of non-composite numerals,according to a particular embodiment, from time to time large labelvalues may be substituted for smaller values. The condensed array maythen associate the substituted larger label values with their smallersubstitutes.

In addition to associating smaller numeral substitutes for largersubstituted label values, a condensed array such as the condensed arrayof Table 1 may also associate label values associated with frontiernodes with child terminal nodes descending from the frontier nodes. Aswill be illustrated in the particular embodiment below, the condensedarray associates larger substituted label values with substitutenumerals that are multiples of a first numeral “T” (e.g., T=three in aparticular embodiment illustrated below). In a particular embodiment,the condensed array also associates child terminal nodes descending fromfrontier nodes with substitute numerals that are multiples of a second,non-composite numeral “α” (e.g., α=five in the particular embodimentillustrated below). To prevent ambiguity as to whether a substituteentry represents a larger label value or a label value representingterminal node children of a frontier node, according to a particularexample, substitute numerals entered in the condensed table may bemultiples of the first non-composite numeral T or the secondnon-composite numeral α. In one particular embodiment, although claimedsubject matter is not limited in this respect, substitute numerals maybe chosen to be a multiple of T or α, but not multiples of both T and α.Here, it should be noted that the choice of representing largersubstituted label values as particular multiples of T=three and thechoice of representing a number of child terminal nodes as particularmultiples of α=five in are merely examples, and that multiples ofdifferent numerals may be used. However, in the particular embodimentsillustrated herein, although claimed subject matter is not limited inthese respects, a comprises a non-composite numeral that is greater thanT.

At block 208, nodes 302, 304 and 306 of tree 300 are identified as beingfurthest from the root node (seven nodes removed from the root node inthis particular example). Subsequent execution of blocks 210 through 228may, according to a particular embodiment of process embodiment 200,determine label values for parents of nodes 302, 304 and 306. Diamond212 determines that these nodes are frontier nodes.

According to a particular embodiment, although claimed subject matter isnot limited in this respect, block 214 may represent a frontier node andits terminal node children as a multiple of α. In the particular exampletransformation of a unary tree illustrated with reference to FIGS. 5through 12, a multiple of α may represent a count of the number ofterminal node children of such a frontier node. In other non-unarytrees, such as trees with labeled nodes and/or edges such as BELTs, sucha multiple of α may also represent edge and/or label values associatedwith particular child nodes and/or edges connecting such child nodes tothe parent frontier node. In this particular example of transforming aunary tree as illustrated with reference to FIGS. 5 through 12, block214 may label the parent of nodes 302 and 304 with numeral “10” (amultiple of α to represent two terminal children) and label the parentof node 306 with “5” (a multiple of α to represent a single terminalchild) as shown in FIG. 6 as resulting nodes 406 and 404. Block 215updates the condensed array to associate the label values associatedwith nodes 406 (numeral “5”) and 404 (numeral “10”) with respectivesubstituted numerals “1” and “2”, representing frontier nodes having asingle terminal node and pair of terminal nodes as reflected below inTable 2. Terminal nodes 302, 304 and 306 are pruned at block 228.

TABLE 2 Substitute Numeral Substituted Numeral 5 1 10 2

Returning to block 208, in this particular example, nodes 402, 404 and406 of tree 400 are nodes which are furthest removed from the root node.Here, diamond 212 may determine that node 402 is a single terminal nodechild of a frontier node in tree 300. Accordingly, in this particularexample, block 214 assigns label value associated with numeral “5” tothe parent of node 402 shown as node 502 in tree 500 of FIG. 7. Sincethe condensed array already associates label value numeral “5” with asingle terminal node depending from a frontier node, no update of thecondensed array is needed at block 215. Since nodes 404 and 406 are notterminal nodes depending from frontier nodes, as determined at diamond212, in this particular example, label values associated with theirrespective parents may be determined, at least in part, as a function oflabel values associated with nodes 404 and 406.

According to an embodiment, a label value associated with a parent nodewhich is not a frontier node may be determined, at least in part, as afunction of label values associated with its children. Here, a labelvalue K of such a parent node may be determined according to relation(1) as follows:

K=P(Tx ₁+Δ₁)*P(Tx ₂+Δ₂)* . . . *P(T _(I)+Δ_(I))  (1)

Where:

-   -   P(n) is the well known Kleene enumeration function for        generating the sequence of non-composite numerals;    -   x_(i)=label value associated with child “i”;    -   T=the aforementioned numeral used for generating smaller        substitute numerals of label values; and    -   Δ_(i)=a numeral to represent a label value associated with an        edge connecting the child node to the parent node.

In the context of the above identified Kleene enumeration function, theterm prime numerals and non-composite numerals may be usedinterchangeably throughout. According to an embodiment, values offactors P(Tx_(i)+Δ_(i)) which are used for determining label valuesassociated with the parent node may be pre-computed and obtained from anarray of pre-computed non-composite numerals which are indexed bynatural numerals. Here, a non-composite numeral P(Tx_(i)+Δ_(i)) in thearray of pre-computed non-composite numerals may be associated with anindex comprising argument “Tx_(i)+Δ_(i)”. It should be understood thatsuch an array may comprise a finite enumeration of non-compositenumerals. For the purpose of illustrating a particular example, Appendix1 lists the first 350 non-composite numerals from 2 through 2357. Here,Appendix 1 provides the first 350 non-composite numerals in columns Athrough G as follows:

P(1) to P(50)—column A

P(51) to P(100)—column B

P(101) to P(150)—column C

P(151) to P(200)—column D

P(201) to P(250)—column E

P(251) to P(300)—column F

P(301) to P(350)—column G

According to an embodiment, argument “Tx_(i)+Δ_(i)” may exceed Indicesof the array of pre-computed non-composite numerals. In the presentlyillustrated embodiment, the Appendix I is capable of providing apre-computed non-composite numeral for indices between 1 and 350.However, it should be understood that this particular enumeration of thefirst 350 non-composite numerals is merely an example, and that otherarrays of pre-computed non-composite numerals may comprise fewer thanthe first 350 non-composite numerals or more than the first 350non-composite numerals.

In a particular embodiment illustrating a transformation of unary tree150 to a condensed array, the numeral T=3 and, since in this particularof tree 150 embodiment edges are unlabeled, Δ_(i) may be set to aconstant one for all.nodes i. Accordingly, argument “Tx_(i)+Δ_(i)” maybe set to “3x_(i)+1”. Again, however, while “Tx_(i)+Δ_(i)” may be set to“3x_(i)+1” in this particular embodiment, argument “Tx_(i)+Δ_(i)” may beset to different expressions (e.g., as illustrated below in the case oftransforming a BELT to a condensed array). Returning to processembodiment 200 for determination of label values for parents of nodes406 and 404, argument “3x_(i)+1” corresponding to node 406 equalsthirty-one and argument “3x_(i)+1” corresponding to node 404 equalssixteen. Since thirty-one and sixteen are within indices of the array ofpre-computed non-composite numerals, in this particular embodiment of anarray of non-composite numerals, diamond 216 determines that labelvalues associated with 406 and 404 are not to be substituted withsmaller values that are multiples of three. Block 224 updates the labelvalues associated with parents of nodes 406 and 404, shown as nodes 506and 504 in FIG. 7 in this particular embodiment, as “127” and “53”,respectively. Returning to block 206 in this particular example, block208 identifies nodes 502, 504 and 506 as being the furthest removed fromthe root node. Diamond 212 determines that none of these nodes arechildren of a frontier node. Since label value associated with nodes 502and 504 equal five and fifty-three, respectively, argument “3x_(i)+1”corresponding to node 502 equals sixteen and argument “3x_(i)+1”corresponding to node 504 equals 160. Accordingly, these arguments donot exceed indices of the array of pre-computed non-composite numeralsin this particular embodiment, and diamond 216 determines that labelvalues associated with nodes 502 and 504 are not to be substituted withsmaller values that are multiples of T (where T=3 in this particularembodiment). Block 224 updates the label values associated withrespective parents of nodes 502 and 504, shown as nodes 602 and 604 inFIG. 8, as “53” and “941.” Block 228 then prunes nodes 402 and 404.

Regarding update of a label value for parent of node 506, argument“3x_(i)+1” for label value associated with “127” exceeds Indices of thearray of pre-computed non-composite numerals as determined at diamond216. Accordingly, block 218 substitutes this label value with a multipleof three. Since this is the first substitution of a larger label valueto a multiple of T in this particular transformation of tree 150, block218 will substitute the larger label value associated with “127” with“3” and indicate this substitution in an updated condensed array asillustrated in Table 3.

TABLE 3 Substitute Numeral Substituted Numeral 3 127 5 1 10 2

This substitution is illustrated in FIG. 7 with a line through thelarger label value “127” and the inclusion of “3” as an updated labelvalue. Block 224 updates a label value associated with the parent ofnode 506 as P(3*3+1)=29, as indicated for node 606 in FIG. 8, and block228 prunes node 506.

Returning to block 208 in connection with tree 600 of FIG. 8, nodes 602through 609 are nodes furthest removed from the root node. Beginningwith nodes 607, 608 and 609, diamond 212 determines that these nodes arechildren of a frontier node.

Accordingly, block 214 determines updates of a label value associatedwith the parent frontier node with a multiple of α (where α=5 in thisparticular embodiment). As reflected in the condensed array, numerals“5” and “10” have already been used to indicate frontier nodes having asingle terminal node and two terminal node children of frontier nodes asillustrated in tree 400 or FIG. 6. Since the next multiple of α (whereα=5 in this particular embodiment), fifteen, is also a multiple of T(where T=3 in this particular embodiment), block 214 may update a labelvalue associated with parent of nodes 607, 608 and 609 with “20” (whichis the next multiple of α after fifteen). This label is reflected in anupdate to the condensed array to associate the label value “20” with afrontier node having three terminal node children as shown in Table 4.

TABLE 4 Substitute Numeral Substituted Numeral 3 127 5 1 10 2 20 3

Nodes 602 and 603, which are not children of a frontier node asdetermined at diamond 212, have label values associated with “53” and“0”, respectively, and diamond 216 determines that argument “3x_(i)+1”does not exceed indices of the array of pre-computed non-compositenumerals for either label value. Accordingly, block 226 determines alabel value associated with the parent of nodes 602 and 603 asP(3*53+1)*P(3*0+1)=241*2=1882. This updated label value is reflected asa label value associated with node 702 of tree 700 in FIG. 9. In asimilar fashion, nodes 605 and 606, which are not children of a frontiernode, have label values associated with “0” and “29,” respectively, anddiamond 216 determines that argument “3x_(i)+1” does not exceed indicesof the array of pre-computed non-composite numerals for either labelvalue.

Accordingly, block 226 determines a label value associated with parentof nodes 605 and 606 as P(3*29+1)*P(3*0+1)=457*2=914. This updated labelvalue is reflected as a label value associated with node 706 of tree 700in FIG. 9.

Regarding update of a label value for the parent of node 604, argument“3x_(i)+1” for a label value associated with “941” exceeds indices ofthe array of pre-computed non-composite numerals as determined atdiamond 216. Accordingly, block 218 substitutes this label value with amultiple of three. Since this is a second substitution of a larger labelvalue to a multiple of T, in this particular transformation of tree 150,block 218 will substitute the larger label value associated with “941”with “6” and indicate this substitution in an updated condensed array asillustrated in Table 5.

TABLE 5 Substitute Numeral Substituted Numeral 3 127 5 1 6 941 10 2 20 3

This substitution is illustrated in FIG. 8 with a line through thelarger label value “941” and the inclusion of “6” as an updated labelvalue. Block 224 updates a label value associated with parent of node604 as P(3*6+1)=67, as indicated for node 704 in FIG. 9, and block 228prunes node 604.

Returning to block 208 in connection with tree 700 of FIG. 9, continuingwith the present example, nodes 701 through 711 are nodes furthestremoved from the root node. Beginning with nodes 701, 703, 705, 707 and710, diamond 212 determines that these nodes comprise children of afrontier node. Here, parent of nodes 701 and 703, has two child terminalnodes. Accordingly, a label value associated with this parent node isupdated as “10” to be consistent with a label value applied to node 406(FIG. 6) representing a frontier node with two terminal node children(and as reflected in the condensed array). This is reflected in a labelvalue associated with “10” applied to node 810 of tree 800 (FIG. 10).Similarly, parents of the non-sibling nodes 705, 707 and 710 are updatedas “5” to be consistent with a label value applied to node 404 (FIG. 6)representing a frontier node with a single terminal node child (and asreflected in the condensed array). This is reflected in a label valueassociated with “5” applied to nodes 810, 812 and 814 of tree 800 (FIG.10).

Regarding update of label values associated with the parents ofnon-sibling nodes 704 and 708, argument “3x_(i)+1” does not exceedindices of the array of pre-computed non-composite numerals.Accordingly, label values associated with these parent nodes are updatedas P(3*67+1)=P(202)=881 and P(3*20+1)=P(61)=283. These updated labelvalues are illustrated in FIG. 10, in a particular example, as labelvalues associated with nodes 804 and 808 of tree 800 (FIG. 10). Block228 then prunes nodes 704 and 708.

Regarding update of label values associated with parent of node 706,argument “3x_(i)+1” exceeds indices of the array of pre-computednon-composite numerals as determined at diamond 216. Accordingly, block218 substitutes label value “914” with a multiple of three. Since thisis a third substitution of a larger label value to a multiple of threein this particular transformation of tree 150, block 218 will substitutethe larger label value associated with “914” with “9” and indicate thissubstitution in an updated condensed array of Table 6.

TABLE 6 Substitute Numeral Substituted Numeral 3 127 5 1 6 941 9 914 102 20 3

This substitution is illustrated in FIG. 9, in this particular example,with a line through the larger label value “914” and inclusion of “9” asan updated label value. Block 224 updates a label value associated withparent of node 604 as P(3*9+1)=107, as indicated for node 806 in theparticular embodiment of FIG. 10, and block 228 prunes node 706.

Regarding update of a label value associated with parent of siblingnodes 702, 709 and 711, node 702 is not a child of a frontier node asdetermined at diamond 212. Argument “3x_(i)+1” corresponding with alabel value associated with node 702 exceeds indices of the array ofpre-computed non-composite numerals as determined at diamond 216.Accordingly, block 218 substitutes the label value “1882” with amultiple of three.

Since this is a fourth substitution of a larger label value to amultiple of three in this particular transformation of tree 150, block218 will substitute the larger label value associated with “1882” with“12” and indicate this substitution in an updated condensed array ofTable 7.

TABLE 7 Substitute Numeral Substituted Numeral 3 127 5 1 6 941 9 914 102 12 1882 20 3

This substitution is illustrated in FIG. 9, in a particular example,with a line through the larger label value “1882” and inclusion of “12”as an updated label value. Since nodes 709 and 711 are siblings of node702, block 222 determines that argument “3x_(i)+1” corresponding withlabel values associated with nodes 709 and 711 do not exceed indices ofthe array of pre-computed non-composite numerals. Accordingly, in thisparticular embodiment, block 222 makes no substitutions of label valuesassociated with nodes 709 and 711 and block 226 updates a label valueassociated with parent of nodes 702, 709 and 711 asP(3*12+1)*P(3*0+1)*P(3*0+1)=P(37)*P(1)*P(1)=157*2*2=628, as indicatedfor node 802 in FIG. 10, and block 228 prunes nodes 702, 709 and 711.

Returning to block 208 in connection with tree 800 of FIG. 10,continuing with this particular example, nodes 802 through 816 are nodesfurthest removed from the root node. Beginning with nodes 810 and 812,diamond 212 determines that these nodes are not children of a frontiernode. Argument “3x_(i)+1” corresponding with the label values associatedwith nodes 810 and 812 also do not exceed indices of the array ofpre-computed non-composite numerals as determined at diamond 216.Accordingly, block 226 updates a label value associated with parent ofsibling nodes 810 and 812 as P(3*10+1)*P(3*5+1)=P(31)*P(16)=127*41=6731,as indicated for node 910 in FIG. 11, and block 228 prunes nodes 810 and812.

Regarding update of a label value associated with parent of siblingnodes 804, 806 and 814, these nodes are not children of a frontier nodeas determined at diamond 212. Argument “3x_(i)+1” corresponding with alabel value associated with node 804 exceeds indices of the array ofpre-computed non-composite numerals as determined at diamond 216.Accordingly, block 218 substitutes label value “881” with a multiple ofthree. This is a fifth substitution of a larger label value to amultiple of three in this particular transformation of tree 150. Sincefifteen is a multiple of both T and α (where T=3 and α=5 in thisparticular embodiment), block 218 may substitute the larger label valueassociated with “881” with “18”, which is the next multiple of threeafter fifteen, and indicate this substitution in an updated condensedarray illustrated in Table 8.

TABLE 8 Substitute Numeral Substituted Numeral 3 127 5 1 6 941 9 914 102 12 1882 18 881 20 3

This substitution is illustrated in FIG. 10 with a line through thelarger label value “881” and inclusion of “18” as an updated labelvalue. Since nodes 806 and 814 are siblings of node 804, block 222determines that argument “3x_(i)+1” corresponding with label valuesassociated with nodes 806 and 814 do not exceed indices of the array ofpre-computed non-composite numerals. Accordingly, block 222 makes nosubstitutions of label values associated with nodes 806 and 814. Block226 updates label value associated with parent of nodes 804, 806 and 814asP(3*107+1)*P(3*18+1)*P(3*5+1)=P(322)*P(55)*P(16)=2137*257*53=29,108,077,as indicated for node 904 in FIG. 11, and block 228 prunes nodes 804,806 and 814.

Regarding update of a label value associated with a parent of siblingnodes 802, 808, 810 and 816, these nodes are not children of a frontiernode as determined at diamond 212. Argument “3x_(i)+1” correspondingwith a label value associated with node 802 exceeds indices of the arrayof pre-computed non-composite numerals as determined at diamond 216.Accordingly, block 218 substitutes label value “628” with a multiple ofthree. Since this is a sixth substitution of a larger label value to amultiple of three in this particular transformation of tree 150, block218 may substitute the larger label value associated with “628” with thenext multiple of three (after “18”) “21”, and indicate this substitutionin an updated condensed array of Table 9.

TABLE 9 Substitute Numeral Substituted Numeral 3 127 5 1 6 941 9 914 102 12 1882 18 881 20 3 21 628

This substitution is illustrated in FIG. 10 with a line through thelarger label value “628” and inclusion of “21” as an updated labelvalue. Block 222 determines that argument “3x_(i)+1” corresponding withlabel values associated with nodes 810 and 816 do not exceed indices ofthe array of pre-computed non-composite numerals, in this particularembodiment. However, block 222 determines that argument “3x_(i)+1”corresponding with a label value associated with nodes 808 does exceedindices of the array of pre-computed non-composite numerals. Here, block222 substitutes label value “283” with a multiple of three. Since thisis a seventh substitution of a larger label value to a multiple of threein this particular transformation of tree 150, block 218 may substitutethe larger label value associated with “283” with the next multiple ofthree (after “21”) “24”, and indicate this substitution in an updatedcondensed array of Table 10.

TABLE 10 Substitute Numeral Substituted Numeral 3 127 5 1 6 941 9 914 102 12 1882 18 881 20 3 21 628 24 283

This substitution is illustrated in FIG. 10, in this particular example,with a line through the larger label value “283” and inclusion of “21”as an updated label value. Block 226 then updates a label valueassociated with parent of sibling nodes 802, 808, 810 and 816 asP(3*21+1)*P(3*0+1)*P(3*24+1)*P(3*5+1)=P(64)*P(1)*P(73)*P(16)311*2*367*53=12,098,522, as indicated for node 902 in FIG. 11, and block228 prunes nodes 802, 808, 810 and 816.

Returning to block 208 in connection with tree 900 of FIG. 10, nodes902, 903, 904 and 910, remaining non-root nodes, are one node removedfrom the root node. Diamond 212 may determine that the parent root nodedoes not comprise a frontier node. Argument “3x_(i)+1” correspondingwith a label value associated with node 910 exceeds indices of the arrayof pre-computed non-composite numerals as determined at diamond 216.Accordingly, block 218 substitutes a label value “6731” with a multipleof three. Since this is the eighth substitution of a larger label valueto a multiple of three in this particular transformation of tree 150,block 218 may substitute the larger label value associated with “6731”with the next multiple of three (after “24”) “27”, and indicate thissubstitution in an updated condensed array of Table 11.

TABLE 11 Substitute Numeral Substituted Numeral 3 127 5 1 6 941 9 914 102 12 1882 18 881 20 3 21 628 24 283 27 6731

This substitution is illustrated in FIG. 11, in this particular example,with a line through the larger label value “6731” and inclusion of “27”as an updated label value. Block 222 determines that argument “3x+1”corresponding with label values associated with node 903 does not exceedindices of the array of pre-computed non-composite numerals. However,block 222 determines that argument “3x_(i)+1” corresponding with labelvalue associated with nodes 902 and 904 exceed indices of the array ofpre-computed non-composite numerals. Here, block 222 substitutes labelvalues “29,108,077” and “12,098,522” with multiples of three. Since thenext multiple of three (after “27”) “30” is a multiple of both T and α(where T=3 and α=5 in this particular embodiment), this numeral will notbe used as a substitute label value in this particular example.Accordingly, in ninth and tenth substitutions of a larger label value toa multiple of three in this particular transformation of tree 150, block218 may substitute the larger label value associated with “29,108,077”with the next multiple of three (after “30”) “33”, and substitute thelarger label value associated with “12,0988,522” with the next multipleof three “36.” Block 222 may also indicate this substitution in anupdated condensed array of Table 12.

TABLE 12 Substitute Numeral Substituted Numeral 3 127 5 1 6 941 9 914 102 12 1882 18 881 20 3 21 628 24 283 27 6731 33 29,108,077 36 12,098,522

These substitutions are illustrated in FIG. 11 with a line through thelarger label values “29,108,077” and “12,098,522” and the inclusion of“33” and “36” as new label value. Block 226 may then update a labelvalue associated with parent of nodes 902, 903, 904 and 910 asP(3*27+1)*P(3*33+1)*P(3*0+1)*P(3*36+1)=P(88)*P(100)*P(0)*P(109)=457*541*2 *599=296,189,926. This updated label value is indicated in FIG. 12 forthe root node. Also, a final condensed array may be updated as shown inTable 1 to associate the next multiple of three (after “36”) “39” withlabel value “296,189,926” associated with the root node. Regarding themultiples of five 25 and 35 as substitute numerals in the condensedarray, these numerals are not used as substitutes for any label valuesin the transformation of tree 150. However, although claimed subjectmatter is not limited in these respects, a condensed array may includethese numerals as place holders that are associated with a symbol suchas “O” to indicate that there are no associated substituted labelvalues. In alternative embodiments, however, rows and/or columns in acondensed array for which there are no substituted label values may beomitted.

Thus, tree 150 may be transformed to the condensed array of Table 1.Here, it should be evident that tree 150 may be completely recoveredfrom information in the condensed array. FIG. 13A illustrates a processembodiment 1000 of transforming a condensed array to a tree according toa particular embodiment. However, this is merely an example of a processto transform a condensed array to a tree and claimed subject matter isnot limited in these respects.

Process embodiment 1000 will be illustrated with reference to thetransformation between trees and condensed arrays illustrated withreference to FIGS. 5 through 12. In one, embodiment of a condensedarray, as illustrated in Table 1, a label value associated with the rootnode may be represented as a substituted numeral associated with adistinct index (e.g., associated with the highest or lowest index).However, the condensed array need not store a label value associatedwith the root node and claimed subject matter is not limited in theserespects. In the presently illustrated embodiment, however, block 1002may obtain a label value associated with the root node as thesubstituted numeral “296,189,926” in the condensed array associated withthe highest index “16”. Diamond 1004 determines that this substitutenumeral is not a factor of α (where, again, α=5 for this particularembodiment) which would indicate a frontier node in this particularembodiment. Diamond 1010 determines that this substitute numeral is alsonot a factor of T (where, again, T=3 for this particular embodiment)which would indicate a substitute for a larger label value that isstored in the condensed array in this particular embodiment.

Accordingly, at block 1014, substituted numeral “296,189,926” may befactored into its component non-composite factors: 457; 541; 2 and 599.These non-composite factors are associated with subtrees of the rootnode according to an association of trees and numerals. Thesenon-composite factors may be located in an array of pre-computednon-composite numerals, as shown in Appendix I for this particularembodiment, for identifying indices that corresponding to thesenon-composite factors. These Indices correspond with argument“Tx₁+Δ_(i)” (where, again, “Tx_(i)+&”=“3x_(i)+1” for this particularembodiment) relating label values x_(i) of child nodes to thenon-composite factors. Here, the indices of the array of pre-computednon-composite numerals which are associated with the non-compositefactors 457, 541, 2 and 599 comprise 88, 100, 1 and 109, respectively.At successive iterations of block 1018, these indices may be equatedwith argument “3x_(i)+1” to provide label values “27,” “33,” “0,” and“36” of nodes 910, 904, 903 and 902, respectively.

Following an iteration of block 1018 providing label value x_(i)=“0”,diamond 1020 determines that the corresponding subtree is a terminalnode. Following iterations of block 1018 for remaining label valuesx_(i)=“27,” “33” and/or “36”, diamond 1020 determines that correspondingsubtrees comprise two or more nodes. For these remaining label values,therefore, block 1022 recursively executes process embodiment 1000 toidentify nodes in subtrees corresponding with these label values whilesetting respective node values x_(i) (determined at block 1018) to belabel values obtained at block 1002 from execution of recursiveinstances.

Being multiples of three, as determined at diamond 1010 in recursiveinstances, remaining label values “27,” “33” and “36” comprisesubstitutes for larger label values provided in the condensed array as“6731”; “29,108,077” and “12,876,562”, respectively. Accordingly, block1012 replaces label values which are factors of three with these largerlabel values.

Continuing with the example for the recursive iteration of processembodiment 1000 in connection with a sub tree represented by the labelvalue “6731” (corresponding with node 910), block 1014 factors “6731”into its non-composite factors 127 and 53. As illustrated above, thenon-composite factors 127 and 53 may be located in the array ofpre-computed non-composite numerals for identifying indices 31 and 16 atcorresponding iterations of block 1018. Equating these indices 31 and 16with argument “3x_(i)+1” provides label values x_(i) of “10” and “5”,respectively, corresponding to descendants of node 910. Since thesevalues are not equal to zero, as determined at block 1020, block 1022may initiate recursive instances of process embodiment 1000 to identifynodes corresponding to these subtrees. Being multiples of α (where α=5in this particular embodiment), as determined at diamond 1004, theselabel values “10” and “5” correspond with frontier nodes having twoterminal node children and one terminal node child, respectively, asindicated in the condensed array of Table 1. Here, label value “10”corresponds with a subtree comprising nodes 701 and 703, and label value“5” corresponds with a subtree comprising node 705.

Thus, in the above illustrated example of execution of processembodiment 1000 a portion of tree 150 is recovered from label value“296,189,926” and the condensed array of Table 1. In similar fashion, aremaining portion of tree 150 may be recovered from the label values“29,108,077” and “12,876,562” corresponding with nodes 902 and 904 byfactoring these numerals into their respective non-composite factors atblock 1014 and execution of blocks 1016 through 1024 (includingrecursive instances of process embodiment 1000 initiated at block 1022).

While the particular embodiments illustrated above with reference toFIGS. 5 through 12 are direct to transforming between unary or unlabeledtrees and condensed arrays, the process illustrated above with referenceto FIGS. 4 and 13A may be applied to transforming between edge and/ornode labeled trees and condensed arrays. In an example of an m-ary edgelabeled tree, an edge connecting two nodes may store, hold and/orrepresent any of an m number of values. Similarly, in an example of anm-ary node labeled tree, a node may store, hold and/or represent any ofan m number of values. Accordingly, m-ary edge labeled trees and m-arynode labeled trees are subsets of the set of m-ary labeled trees. Thediscussion below in connection with FIGS. 13B through 18 providesparticular examples of transforming between BELTs and condensed arraysfor the purpose of illustrating transformations between trees andcondensed arrays. However, these are merely examples of how suchtransformations may be employed and claimed subject matter is notlimited in this respect. For example, as discussed below, the describedtechniques are also applicable to transforming between condensed arraysand BNLTs, m-ary edge labeled trees and/or m-ary node labeled trees.

As pointed out above in connection with relation (1), a label valueassociated with a parent node may be determined based, at least in part,upon the label values associated with its child nodes. For an m-ary edgelabeled tree, according to a particular embodiment, T may be set to avalue of m or larger while Δ_(i), associated with a child node i, maytake on any value from Δ_(i)=1, 2, . . . , m−1 depending, at least inpart, on a particular edge label value associated with an edgeconnecting node i to its parent node. Also, a value of α (wheremultiples of represent terminal node children of a frontier node in acondensed array) may again be selected as a non-composite numeral thatis greater than T. In an embodiment to transform a five edge labeledtree, where m=5, α may be set to seven. However, this is merely anexample of how a may be selected for a particular example embodiment andclaimed subject matter is not limited in these respects.

According to an embodiment of transforming between an m-ary edge labeledtree and a condensed array, terminal node children of a frontier nodemay be represented as a numeral generated from the well known mdimensional Cantor function capable of uniquely expressing m-dimensionalcoordinates as a single numeral. The single numeral may then beassociated with one or more frontier nodes and a multiple of α in thecondensed array. Here, such a Cantor function may define a one-to-oneand onto mapping between m-dimensional expressions of frontier nodes andsingle numerals. In the case of a BELT (where m=2), for example, a labelvalue associated with a frontier node may be expressed as an orderedpair (x,y). Here, x may represent a number of terminal child nodesconnected to the frontier node by a zero-labeled edge while y mayrepresent a number of terminal child nodes connected to the frontiernode by a one-labeled edge. As illustrated in FIG. 13B, a Cantor pairingfunction may associate any combination of x and y values with a singlenumeral. Accordingly, a frontier node in a BELT and its child terminalnodes may be represented by a single numeral generated from the Cantorpairing function of FIG. 13B. However, the Cantor pairing function ismerely an example of how a frontier node of a BELT and its childterminal nodes may be represented as a single numeral, and claimedsubject matter is not limited in these respects.

For trees with edges capable of having more than two different values,other Cantor functions may define a one-to-one and onto mapping betweenordered groupings of three or more numerals and a single numeral. Anumeral in such an ordered grouping may represent a number of terminalnodes connected to a frontier node with an edge of a corresponding edgelabel value. Such other Cantor functions defining a one-to-one and ontomapping between ordered groupings of three or more numerals and singlenumerals are well known as illustrated in “Logical Number Theory I: AnIntroduction,” Craig Smorynski, Springer-Verlag, 1991, pp. 23-24.

In a particular embodiment directed to transforming between BELTs andcondensed arrays is described with reference to FIGS. 14 through 18.Again, in this particular embodiment, process embodiment 200 of FIG. 4may set T=3 (which is greater than m=2). However, it should beunderstood that, in other embodiments, process embodiment 200 may setT=2. Setting T=3, process embodiment 200 may then select α=5, anon-composite numeral greater than three. As illustrated below, processembodiment 200 may transform tree 1050 to a condensed array as shown inTable 13.

TABLE 13 Index Substitute Numeral Substituted Numeral 1 3 254 2 5 1 3 622597 4 9 Ø 5 10 2 6 12 Ø 7 18 Ø 8 20 Ø 9 21 Ø 10 24 Ø 11 25 4 12 277167379

Block 202 may assign label values “0” to nodes as shown in FIG. 15.Block 204 may then identify frontier nodes 1072. Block 208 identifiesnodes 1074, 1076, 1078 and 1080 as nodes that are furthest removed fromthe root node. For subsequent Iterations of processing through blocks210 through 230, diamond 212 determines that nodes 1074, 1076, 1078 and1080 are also children of frontier nodes.

In the presently illustrated embodiment of transforming a BELT to acondensed array, block 214 may associate a frontier node with an with anordered pair (x,y), as illustrated above, where x represents a number ofchild nodes connected by a zero-labeled edge and y represents a numberof child nodes connected by a one-labeled edge. The parent of node 1076,having a single child node connected by a zero-labeled edge, may beassociated with (1, 0). According to Cantor pairing function of FIG.14B, this ordered pair maps to the numeral “1”. Block 214 may associatenumeral “1” with a multiple of α (where α=5 in the presently illustratedembodiment). Here, frontier parent of node 1076 may be updated as “5” asindicated at node 1106 of tree 1100 in FIG. 16. Block 215 may thenassociated substitute numeral “5” with a substituted numeral “1” asshown in Table 14. Block 214 may associate frontier node parent of node1074, having a single child node connected by a one-labeled edge, withordered pair (0,1). According to the Cantor pairing function of FIG.14B, this ordered pair maps to numeral “2”. Block 214 may associatenumeral “2” with a multiple of five such as the numeral “10.” Here,frontier parent of node 1074 may be updated as “10” as indicated at node1104 of tree 1100. Block 215 may then associated the substitute numeral“10” with a substituted numeral “2” as shown in Table 14. Block 214 mayassociate frontier node parent of nodes 1078 and 1080, having a twochild nodes connected by respective one-labeled edges, with ordered pair(0,2). According to the Cantor pairing function of FIG. 14B, thisordered pair maps to numeral “4”. The next multiple of five (after “10”)is fifteen which is a multiple of both a and T. In the particularillustrated embodiment, although claimed subject matter is not limitedin this respect the numeral “15” may be excluded as a substitute numeralto avoid ambiguity. The next multiple of five, (after “15”) “20”, may beset aside as a substitute numeral for an ordered pair (1,1) mapping tonumeral “3” according to the Cantor pairing function of FIG. 14B.Accordingly, numeral “4”, associated with frontier node parent of nodes1078 and 1080, may be associated with a substitute numeral “25” (thenext multiple of five after “20”). Here, block 214 may update a labelvalue associated with frontier node parent of nodes 1078 and 1080 as“25” as shown at corresponding node 1108 of tree 1100 in FIG. 16. Block215 may update the condensed array to associate substitute numeral “25”with substituted numeral “4”. Block 228 may then prune nodes 1074, 1076,1078 and 1080.

TABLE 14 Substitute Numeral Substituted Numeral 5 1 10 2 25 4

Returning to block 208 of process embodiment 200, in this particularexample, block 208 identifies nodes 1102, 1104, 1106, 1108, 1110 and1112 as being furthest removed from the root node. In subsequentiterations of processing through blocks 210 through 230, diamond 212determines that nodes 1102 and 1110 are also children of frontier nodes.Here, like frontier node parent of node 1076 in tree 1070, frontier nodeparents of nodes 1102 and 1110 are connected to a single terminal nodeby a zero-labeled edge. Block 214 may also associate these frontiernodes with ordered pair (1,0), corresponding with numeral “1” of theCantor function of FIG. 14B. Accordingly, block 214 may also associatethis numeral “1” with substitute numeral “5” in the condensed array ofTable 14 and update label values associated with these frontier nodes as“5” as shown at nodes 1152 and 1160 of tree 1150 in FIG. 17, and block228 may prune nodes 1102 and 1110.

Regarding update of label value associated with parent of sibling nodes1104 and 1112, diamond 212 determines that these nodes are not childrenof a frontier node. Here, diamond 216, determines whether argument“Tx_(i)+Δ_(i)” for these particular nodes exceeds an indices of thearray of pre-computed non-composite numerals. For this particularembodiment, as discussed above, the value of T is set to three. Again,however, this is merely an example of a numeral that may be assigned toT and claimed subject matter is not limited in these respects. The valueΔ_(i) may be determined based, at least in part, on an edge label valueassociated with an edge connecting a particular node i to its parentnode. In this particular example of transforming a BELT to a condensedarray, a value of one may be assigned to Δ_(i) if i is connected to itsparent by a zero-labeled edge and a value of two may be assigned toΔ_(i) if i is connected to its parent by a one-labeled edge. However, itshould be under stood that these are merely examples of values that maybe assigned to Δ_(i) based, at least in part, on an edge labeled valueconnecting node i to its parent, and claimed subject matter is notlimited in these respects.

For node 1112, argument Tx_(i)+Δ_(i)=3*0+1=1, which does not exceedindices of the array of pre-computed non-composite. Similarly for node1104, Tx_(i)+Δ_(i)=3*10+1=31, which also does not exceed Indices of thearray of pre-computed non-composite numerals. As determined at diamond216 and block 222, label values associated with nodes 1104 and 1112 arenot to be substituted. Also, parent of sibling nodes 1104 and 1112 maybe updated at block 226 as P(3*0+1)*P(3*10+1)=P(1)*P(31)=2*127=254.Accordingly, a label value associated with parent of sibling nodes 1104and 1112 is updated as “254” shown at node 1154 of tree 1150 of FIG. 17,and block 228 may prune nodes 1104 and 1112.

Regarding update of label value associated with parent of sibling nodes1104 and 1112, diamond 212 determines that these nodes are not childrenof a frontier node. For node 1106, argument Tx_(i)+=3*5+2=17, which doesnot exceed Indices of the array of pre-computed non-composite numerals.Similarly for node 1104, Tx_(i)+Δ_(i)=3*25+1=76, which also does notexceed indices of the array of pre-computed non-composite numerals. Asdetermined at diamond 216 and block 222, label values associated withnodes 1104 and 1112 are not to be substituted. Also, parent of siblingnodes 1106 and 1108 may be undated at block 226 asP(3*5+2)*P(3*25+1)=P(17)*P(76)=59*383=22597. Accordingly, the labelvalue associated with parent of sibling nodes 1106 and 1108 is updatedas “22597” shown at node 1156 of tree 1150 of FIG. 17, and block 228 mayprune nodes 1104 and 1112.

Returning to block 208 of process embodiment 200 in connection with tree1150 of FIG. 17, continuing with the current example, remaining nodes1152, 1154, 1156 and 1160 are one node removed from the root node.Subsequent iterations of blocks 210 through 230 may determine at diamond212 that these nodes are not frontier nodes. Nodes 1152 and 1160 areassociated with a label value “5” and are connected to the root node byrespective one-labeled edges. Accordingly, Tx_(i)+Δ_(i)=3*5+2=17, whichdoes not exceed indices of the array of pre-computed non-compositenumerals. For node 1154, having a label value associated with “254” andbeing connected to the root node by a zero-labeled edge,Tx_(i)+Δ_(i)=3*254+1=763, which exceeds indices of the array ofpre-computed non-composite numerals. Similarly, for node 1156, having alabel value associated with “22597” and being connected to the root nodeby a one-labeled edge, Tx_(i)+&=3*22597+1=67792, which exceeds indicesof the array of pre-computed non-composite numerals. Here, label valuesassociated with 1154 and 1156 are substituted with multiples of T (whereT=3 for this particular embodiment). Since the condensed array of Table14 has no substituted numerals associated with a multiple of three, thecondensed array as shown in Table 15 associates numeral “3” with asubstituted numeral “254” as a label value associated with node 1154.This substitution is reflected in FIG. 18, in this particular example,as a line through substituted label value “254” of node 1154 andinclusion of “3” as a substitute label value. The condensed array asshown in Table 15 also associates the next multiple of three (after “3”)“6” with a substituted label value “22597” of node 1156. Thissubstitution is reflected in FIG. 18, in this particular example, as aline through the substituted label value “23597” of node 1156 andinclusion of “6” as a substitute label value.

TABLE 15 Substitute Numeral Substituted Numeral 3 254 5 1 6 22597 10 225 4

Block 226 may then update a label value associated with the root node asP(3*5+2)*P(3*5+2)*P(3*3+1)*P(3*6+2)=P(17)*P(17)*P(10)P(20)=59*59*29*71=7167379. This numeral may then be associated with thenext multiple of exceeding the highest substitute numeral already in thecondensed array, “27” as shown in the condensed array of Table 13.However, this is merely an example of how a substitute numeralassociated with the root node may be represented in a condensed arrayand claimed subject matter is not limited in these respects.Accordingly, BELT 1050 may be transformed to the condensed array ofTable 13. In addition, a transformation of BELT 1050 to the condensedarray of Table 13 may also be reversed according to a particularembodiment. As illustrated above with reference to FIGS. 5 through 12above, process embodiment 1000 (FIG. 13A) may also transform thecondensed array of Table 13 back to BELT 1050. Here, process embodiment1000 will be illustrated with reference to the transformation betweenBELTs and condensed arrays illustrated with reference to FIGS. 14through 18. In one embodiment of a condensed array, as illustrated inTable 13, block 1002 may obtain a label value associated with the rootnode as the substituted numeral “7,167,379” in the condensed arrayassociated with the highest index “12”. Diamond 1004 determines thatthis substituted numeral is not a factor of α (where, again, α=5 forthis particular embodiment) which would indicate a frontier node.Diamond 1010 determines that this substituted numeral is also not afactor of T (where, again, T=3 for this particular embodiment) whichwould indicate a substitute for a larger label value that is stored inthe condensed array.

Accordingly, at block 1014, substituted numeral “7,167,379” may befactored into its component non-composite factors: 59; 59; 29 and 71.These non-composite factors are associated with subtrees of the rootnode according to an association of trees and numerals. Thesenon-composite factors may be located in the array of pre-computednon-composite numerals for identifying indices that corresponding tothese non-composite factors. These Indices correspond with argument“Tx_(i)+Δ_(i)” (where, again, “Tx_(i)+Δ_(i)”=“3x_(i)+1” for thisparticular embodiment) relating label values x_(i) of child nodes to thenon-composite factors. Here, the indices of the array of pre-computednon-composite numerals which are associated with the non-compositefactors 59, 59, 29 and 71 comprise 17, 17, 10 and 20, respectively.

According to a particular embodiment for transforming between condensedarrays and m-ary edge labeled trees, block 1018 may determine a labelvalue x_(i) and an edge label value connecting the subtree correspondingto non-composite factor i to its parent node based, at least in part, ona non-composite factor i determined at block 1014. Relation (2)expresses the label value x_(i) as follows

i=P(Tx _(i)+Δ_(i))

P ⁻¹(i)=Tx _(i)+Δ_(i)

x _(i)=[P ⁻¹(i)−Δ_(i)]/T  (2)

where: P⁻¹(i)=inverse of the Kleene enumeration function providing anindex associated with the non-composite factor i in the array ofpre-computed non-composite numerals.

While the terms “P⁻¹(i)” and “T” may comprise known integers, the term“Δ_(i)” (associated with an edge label value) may comprise an integerfrom 1 to T−1. In the currently illustrated particular embodiment,however, only a single value of Δ_(i) within the range of 1 to T−1,inclusive, may provide a non-fractional or integer result for x_(i)according to relation (2). Returning to the aforementioned non-compositefactor 59 and corresponding Index 17, x_(i)=[17−Δ_(i)]/3=5, whereΔ_(i)=2 for providing a non-fractional result for x_(i). The expressionΔ_(i)=2 also corresponds with an one-labeled edge connecting the node toits parent according to this particular embodiment of transformingbetween condensed arrays and BELTs. Accordingly, the non-compositefactors 59 correspond with a subtree comprising nodes 1152 and 1160having a label value associated with “5” and being connected to the rootnode by a one-labeled edge.

Since x_(i)=5, diamond 1020 initiates execution of recursive instancesof process embodiment 1000 at block 1022 to transform nodes 1152 and1160 to frontier nodes having respective single child nodes 1102 and1110 connected by zero-labeled edges. Here, diamond 1004 recognizes thatthe label value five is a multiple of α, and block 1006 determines theterminal node children of the frontier nodes. Block 1006 may associatelabel value “5” with substituted numeral “1”. Block may then associatesubstituted numeral “1” with ordered pair (1,0) of the Cantor pairingfunction of FIG. 13B to determine that nodes 1152 and 1160 comprisefrontier nodes connected to a single child node by a zero-labeled edge.

Turning now to the subtree associated with non-composite numeral 29,continuing with the present example, relation (2) may determinex_(i)=[10−Δ_(i)]/3=3, where Δ_(i)=1 for providing a non-fractionalresult for x_(i). This corresponds with node 1154 having a node label“3” and connected to the root node by a zero-labeled edge. Sincex_(i)=3, diamond 1020 may initiate execution of a recursive instance ofprocess embodiment 1000 at block 1022. Here, diamond 1010 determinesthat x_(i) is a multiple of α which is three. Therefore, block 1012 mayreplace the label value “3” with substituted numeral “254” from thecondensed array. Block 1014 may then factor “254” Into its non-compositefactors “2” and “127” associated with respective subtrees. Taking thesubtree associated with non-composite numeral “2” first, block 1018 may,according to relation (2), determine x_(i)=[1−Δ_(i)]/3=0, where Δ_(i)=1for providing a non-fractional result for x_(i). This corresponds with asingle terminal node connected to its parent by a zero-labeled edge inthis particular embodiment, corresponding with node 1112, and diamond1020 returns execution to block 1016. Now taking the subtree associatedwith the next non-composite factor “127”, continuing with the currentexample, block 1018 may, according to relation (2), determinex_(i)=[31−Δ_(i) ]/3=10, where Δ₁=1 for providing a non-fractional resultfor x_(i). This corresponds with node 1104 connected to its parent nodeby a zero-labeled edge in this particular embodiment. Since x_(i)=10,diamond 1020 may initiate execution of a recursive instance of processembodiment 1000 at block 1022. Here, diamond 1004 determines that x_(i)is a multiple of five, indicating a frontier node. Block 1006 thenassociates “10” in the condensed array with substituted numeral “2”.According to the Cantor pairing function of FIG. 13B, this correspondswith the ordered pair (0,1) and/or a frontier node connected to a singleterminal node child by an one-labeled edge. This corresponds with nodesterminal node 1074 and its parent frontier node shown in tree 1070 inthis particular embodiment.

Without belaboring the discussion, it should be clear that processembodiment 1000 may transform the remaining subtree associated with thenon-composite numeral “71” to complete the transformation back to tree1050.

The particular embodiments illustrated with reference to FIGS. 5 through12 and FIGS. 14 through 18 make particular use of node label values forrepresenting hierarchical data. In particular, FIGS. 5 through 12 and 15through 18 may show a node being associated with a node label valuerepresenting a subtree connected to the node by one or more child nodes.However, it should be understood that other embodiments may make use ofother types of label values such as edge label values and/or otherexpressions/devices of information to represent essentially the sameinformation expressed in node label values shown in FIGS. 5 through 12and 15 through 18, and that claimed subject matter is not limited inthese respects.

Additionally, FIGS. 3 through 12 illustrate a particular embodiment fortransforming between a unary tree and a condensed array and FIGS. 13Bthrough 18 illustrate another particular embodiment for transformingbetween a BELT and a condensed array. In other embodiments, atransformation between an edge and/or node labeled tree and a condensedarray may comprise a transformation between the edge and/or node labeledtree and a unary tree that is an elementary equivalent of the edgeand/or node labeled tree. A transformation between the unary tree andthe condensed array, such as that illustrated above with reference toFIGS. 3 through 12, may complete the transformation between thecondensed array and the edge and/or node labeled tree. In a particularembodiment, as illustrated in U.S. Provisional Application No.60/648,950 titled “Method and/or System for Tree Transformation,” filedon Jan. 31, 2005, for example, there exists a transformation betweenBELTs and elementary equivalent unary trees, and a transformationbetween node label trees and elementary equivalent unary tree.Accordingly, hierarchical data represented as a BELT and/or node labeledtree may be transformed to a unary tree representation, which is thentransformed to a condensed array. Similarly, hierarchical datarepresented as a condensed array may be transformed to a unary tree,which is then transformed to a BELT and/or node labeled tree. Again,however, these are merely examples of transformation between trees andcondensed arrays, and claimed subject matter is not limited in theserespects.

Such a transformation between a unary and a BELT and/or node labeledtree is illustrated, according to a particular embodiment, withreference to FIGS. 19 through 29. FIGS. 19 through 24 are schematicdiagrams of trees illustrating a transformation between an unlabeledtree and a BELT according to an embodiment. This is illustrated as asequence of operations depicted here as graph operations, although sucha transformation may alternatively be implemented by operationsimplemented otherwise, one such example being by a computing platform,for example. Likewise, other embodiments in which trees of one form aretransformed to trees of another form are also included within the scopeof claimed subject matter.

FIG. 19 is a schematic diagram of an unlabeled tree 2300 comprising aroot node 2302 according to an embodiment. Identifying root node 2302indicates a directional flow of hierarchical data represented inunlabeled tree 2300 descending away from root node. FIG. 20 is aschematic diagram of unlabeled tree 2300 showing terminal nodes ascross-hatched nodes. As illustrated in FIG. 21, by way of example,according to a particular embodiment, frontier nodes 2304 in tree 2300are connected to one or more corresponding child terminal nodes.

FIGS. 22 through 24 are schematic diagrams illustrating a process totransform between an unlabeled tree 2300 and a BELT that comprises anelementary equivalent of unlabeled tree 2300. In this particularembodiment, unlabeled tree 2300 may represent hierarchical data and thetransformation illustrated below may map unlabeled tree 2300 to a BELTthat represents essentially the same hierarchical data. According to anembodiment, tree 2300 is transformed to a node labeled tree 2500 shownin FIG. 23 which comprises an elementary equivalent of tree 2300. Then,as illustrated above, node labeled tree 2500 may be transformed to aBELT 2600 shown in FIG. 24 which comprises an elementary equivalent oftree 2600. Accordingly, in a particular embodiment, the resulting tree2600 comprises an elementary equivalent of tree 2300. However, this ismerely an example of a transformation between an unlabeled tree and aBELT that is an elementary equivalent of the unlabeled tree and claimedsubject matter is not limited in this respect.

According to an embodiment, FIG. 22 illustrates a process of “pruning”terminal nodes in tree 2300 from frontier nodes. Here, tree 2400 showsdarkened nodes 2404 which correspond with frontier nodes 2304 of tree2300. According to an embodiment, tree 2400 may be generated by pruningand/or removing one terminal node connected to each of the correspondingfrontier nodes 2304. The remaining terminal nodes of tree 2300 (i.e.,the unpruned terminal nodes) are indicated with cross-hatching. However,this is merely an example of how terminal nodes may be pruned fromcorresponding frontier nodes and claimed subject matter is not limitedin this respect.

FIG. 23 is a schematic diagram of a node labeled tree 2500 which may bedetermined, at least in part, from tree 2400. According to anembodiment, the remaining terminal nodes of tree 2300 indicated withcross-hatching in tree 2400 are replaced with node label valuesassociated with parent nodes in tree 2500. In a particular embodiment,for example, nodes in tree 2400 having a natural numeral k of suchremaining terminal nodes as children are associated with nodes in tree2500 having a node label value associated with k and the remainingterminal node children in tree 2400 are removed in the resulting tree2500. Again, tree 2500 may represent essentially the same hierarchicaldata represented in tree 2400. Here, the resulting node labeled tree2500 determined from the above described transformation may comprise anelementary equivalent of unlabeled tree 2300. However, this is merely anexample how an unlabeled tree may be transformed to an elementaryequivalent node labeled tree and claimed subject matter is not limitedin this respect.

Nodes in tree 2500 contain a numeral as a node label value to representa count of remaining terminal nodes removed from corresponding nodes intree 2400. While not shown in FIG. 23, the remaining nodes in tree 2500not showing a node label may nevertheless be assigned a node label valueassociated with natural numeral “0.” According to an embodiment, tree2500 may be transformed to an elementary equivalent BELT by replacingnodes in tree 2500 having a non-zero node label value with an equivalentportion of a BELT. In a particular embodiment, the portion of a BELTequivalent to the non-zero node label value may be determined accordingto an association embodiment of numerals and trees.

FIG. 24 is a schematic diagram of a BELT 2600 resulting from atransformation from node labeled tree 2500 according to an embodiment.According to a particular embodiment, edges in BELT 2600 correspondingwith edges existing in node labeled tree 2500 may be labeled with anumeral “1.” Then, nodes in BELT 2600 corresponding to nodes in nodelabeled tree 2500 having non-zero node label values may be connected toportions of BELTs which are based, at least in part, on the non-zerolabel values. Here, the non-zero node label values may be associatedwith the portions of BELTs according to an association of BELTs andnumerals according to a particular association embodiment. In thisparticular embodiment, for the purpose of illustration, FIG. 25 showsportions of BELTs in BELT 2600 corresponding with a non-zero node labelvalue in node labeled tree 2500. FIG. 25 also shows non-zero node labelvalues in node label tree 2500 above corresponding to portions of BELTsin BELT 2600. Here, the edge between the prior nodes and the new nodesis labeled with a zero value. For nodes with a value k that is a powerof two, including the value one, the node value is deleted and(log₂(k)+1) new nodes are attached, labeling the edge between the newnodes and the old nodes with a zero value.

The remaining node label values comprise non-powers of two that arethree or larger. These node label values may be factored into one ormore non-composite numerals according to a particular associationembodiment. For such a resulting non-composite numeral factor of anode's label, a tag representing the non-composite numeral factor may beconnected to the node by an edge having an edge label value associatedwith binary zero. The tag may comprise a portion of a BELT representingthe non-composite numeral factor according to an association of BELTsand numerals of a particular association embodiment.

As described below in greater detail, the association of portions ofBELTs and numerals may associate unique portions of BELTs andcorresponding numerals. In other words, in a particular associationembodiment, for any numerical node label value there is a uniquecorresponding BELT portion. Accordingly, the resulting BELT 2600 mayexpress essentially the same hierarchical data as the node labeled tree2500 and comprise an elementary equivalent of the node labeled tree2500. However, it should be understood that this is merely an example ofa transformation between a node labeled tree and an elementaryequivalent BELT and claimed subject matter is not limited in theserespects. Since the node labeled tree 2500 comprises an elementaryequivalent of the unlabeled tree 2300, BELT 2600 may also comprise anelementary equivalent of unlabeled tree 2300. However, again, this ismerely an example of a transformation between an unlabeled tree and anelementary equivalent BELT, and claimed subject matter is not limited inthese respects.

FIG. 26 is a flow diagram illustrating a process 2700 of associatingnode label values with BELTs and/or portions of BELTs according to anembodiment of the transformation illustrated above with reference toFIGS. 23 through 25. Here, process 2700 may be used to associate nodelabel values associated with nodes in node labeled tree 2500 withcorresponding portions of BELTs in BELT 2600, according to theparticular association embodiment illustrated in FIG. 25. FIG. 27 is atable showing a particular association embodiment that may be determinedaccording to process 2700. However, it should be understood that process2700 and FIG. 26 merely illustrate particular association embodimentsand that claimed subject matter is not limited in these respects.

Process 2700 may determine BELT portions corresponding to node labels“k” of a node label tree, as illustrated in the transformation from nodelabeled tree 2500 to BELT 2600 illustrated above. If a particular nodelabel value k is equal to zero, as determined at diamond 2704, process2700 merely removes any node label value from a corresponding node inthe resulting BELT. For a particular node label value k equal to one, asdetermined at diamond 2706, block 2708 may attach to a correspondingnode in the resulting BELT a single node by an edge having a label valueassociated with binary zero. Such a BELT portion corresponding tonumeral “1” is shown in the association embodiment of FIG. 27.

For a particular node label value k equal to a power of two, asdetermined at diamond 2712, block 2710 may attach to a correspondingnode in the resulting BELT, log₂(k)+1 nodes by corresponding edgeshaving a label value associated with binary zero. This is illustrated inthe particular association embodiment shown in FIG. 27 with reference toBELT portions corresponding to numerals two, four and eight. Here, twonodes are attached to the corresponding node in the resulting BELT bycorresponding edges for a node label value k=2. Three nodes are attachedto the corresponding node in the resulting BELT by corresponding edgesfor a node label value k=4; and four nodes are attached to thecorresponding node in the resulting BELT by corresponding edges for anode label value k=8.

According to an embodiment, a node label value k may comprise a naturalnumeral that is a product of natural numerals x and y greater than one.Under this condition, k comprises a composite numeral capable of beingfactored into natural numerals x and y. Here, the BELT portionrepresenting k in a resulting BELT may be represented as a merger ofrespective BELT portions represented by the natural numerals x and y ata corresponding node in the resulting BELT providing, in effect, a rootnode for the merged BELT portions. Alternatively, a node label value kmay comprise a non-composite natural numeral that cannot be factoredinto positive natural numerals other than one and itself.

Returning to process 2700, if a node label value k comprises anon-composite natural numeral greater than three, as determined atdiamond 2716, block 2714 may attach a BELT portion associated with thenon-composite numeral to a corresponding node in the resulting BELT.Here, the BELT portion may be determined from a particular associationof BELTs with non-composite numerals.

Returning again to process 2700, if a node label value k comprises acomposite natural numeral, as determined at diamond 2716, block 2718 mayfirst factor k by the largest power of two, “w”. This factor may berepresented by a BELT portion comprising log₂(w) nodes attached to thecorresponding node in the resulting BELT by corresponding edges withlabel values “0.” The remainder may then be factored into non-compositenumerals greater than two. According to a particular associationembodiment, as illustrated with reference to block 2714, for example,block 2718 may determine BELT portions corresponding to thesenon-composite factors of the remainder. Here, for such a resultingnon-composite numeral factor of a node's node label, a tag representingthe non-composite numeral factor may be connected to the node by an edgehaving an edge label value associated with binary zero. The tag maycomprise a portion of a BELT representing the non-composite numeralfactor according to an association of BELTs and numerals of a particularassociation embodiment. Such an association of BELTs and numeralsaccording to one particular embodiment is illustrated in detail below.

According to a particular association embodiment, a composite numeralmay be represented by individual BELTs and/or BELT portionscorresponding with individual factors making up the composite numeral.Here, a “merger” operation may join the BELTs and/or BELT portionscorresponding with the individual factors at a common root node to formthe BELT and/or BELT portions corresponding with the composite numeral.Accordingly, such a merger operation of BELTs at a root node maycorrespond with multiplication of numerals corresponding with the mergedBELTs. Without belaboring the discussion, such a merger operation isfurther illustrated in the aforementioned U.S. patent application Ser.No. 11/005,859, filed on Dec. 6, 2004, by J. J. LeToumeau, titled,“Manipulating Sets of Hierarchical Data.” Returning to process 2700,block 2720 may merge the BELT portions corresponding to thesenon-composite factors determined at block 2718, and any BELT portioncorresponding to a power of two factor “w” of k, at the correspondingnode in the resulting BELT. As illustrated in FIG. 31, by way ofexample, a node value of 1950 may be factored at block 2718 intonon-composite numerals as follows:

1950=2×3×5×5×13

As may be observed from FIG. 28, according to the particular associationembodiment illustrated in FIG. 27, the BELT portion corresponding tonumeral 1950 comprises a merger of BELT portions corresponding to theindividual non-composite factors 3, 5, 5 and 13. For the remainingfactor “2,” an additional node is connected by an edge having a labelvalue associated with binary zero. Accordingly, it should be recognizedfor this particular embodiment that while block 2710 may attachlog₂(k)+1 nodes in the resulting BELT for a node label value power oftwo k, block 2720 may merge log₂(w) nodes for a power of two factor w ofa composite node label value (with BELT portions representingnon-composite factors greater than two).

Process 2700 should be understood to be merely illustrative of aparticular process for generating BELT portions corresponding to nodelabel values in a corresponding node labeled tree. In alternativeembodiments, possible node label values may be associated in a look uptable with corresponding BELT portions determined, at least in part,according to a particular association embodiment.

Regarding particular association embodiments, FIG. 27 shows that thenumber of nodes representing non-composite numerals may grow roughlylogarithmically with respect to the corresponding non-compositenumerals. Nevertheless, it should be understood that the association ofnon-composite numerals and BELTs as illustrated in FIG. 22 is merely anexample of how non-composite numerals may be associated with BELTs in aparticular embodiment, and that many other association embodiments maybe used without departing from claimed subject matter. This particularassociation embodiment, however, makes use of an association of BELTsand natural numerals. FIG. 24 is a table illustrating a particularembodiment of an association between natural numerals BELTs. Here, theresulting BELTs may be used as tags corresponding to non-composite nodelabel values associated with nodes in a node labeled tree and/or factorsthereof. As illustrated in particular embodiments above, these tags areattached to corresponding nodes in the resulting BELT by edges having alabel value associated with binary zero (in which a tag Is connected byan edge having a label value associated with binary zero). It should berecognized that BELTs corresponding to numerals zero and one are used torepresent tags corresponding to node label values zero and one asillustrated in FIG. 22. As illustrated in FIG. 24, the tags associatedwith non-composite node label values and/or factors three, five, seven,eleven and thirteen correspond with the BELTs associated with numeralstwo, three, four, five and six, respectively. This matches theassociation of non-composite numerals greater than two and BELT portionsshown in FIG. 22

Such an association of BELTs and numerals as illustrated may begenerated by an enumeration of BELTs and associating natural numerals tosuch enumerated BELTs. Thus, for this particular embodiment, althoughclaimed subject matter is not limited in scope in this respect, a methodof enumerating a set of trees begins with enumeration of an empty binaryedge labeled tree and a one node binary edge labeled tree. Here, theempty tree is associated with the zero and has a symbolic representationas Illustrated in FIG. 24 (circle). Likewise, the one node tree, whichholds no data, is associated with the one and has a graphicalrepresentation of a single node. For higher positive natural numerals,however, this embodiment of a method of enumerating a set of treescomprises positioning a tree at location k, k being a positive numeralgreater than three, in which k comprises the product of u and v, u and vcomprising positive numerals greater than one, such that the tree isformed by a union of the trees at positions u and v. Likewise, for thoselocations that are not a product of other natural positive numeralsgreater than one, that is, for locations that comprise non-compositenumerals, denoted here by j, for example, j being a positive naturalnumeral greater than one, a tree is positioned at location j such thatthe tree is formed by finding the first tree in the prior enumerationsuch that the binary edge labeled tree obtainable from this first treeby attaching a node to the particular tree as a new root node andlabeling the edge between the new root node and the prior root node witha binary zero label is not in the enumeration at some position lowerthan j; however, if the binary edge labeled tree obtainable from thatfirst tree, as just described, is present in the enumeration with abinary zero label for the new edge, but not with a binary “1” label,then the tree at position j is that tree with a binary “1” label for thenew edge. This may be illustrated, for example in FIG. 24, as describedin more detail below.

For a particular embodiment, although claimed subject matter is notlimited in scope in this respect, a method of enumerating a set ofordered trees may begin with enumeration of an empty binary edge labeledtree and a one node binary edge labeled tree. Thus, the empty tree isassociated with the zero and has a symbolic representation asillustrated in FIG. 24 (circle). Likewise, the one node tree, whichholds no data, is associated with the one and has a graphicalrepresentation of a single node. For higher positive natural numerals,ordered trees may be generated by a process described, for example, in“The Lexicographic Generation of Ordered Trees,” by S. Zaks, The Journalof Theoretical Computer Science, Vol. 10(1), pp. 63-82, 1980, orEnumerating Ordered Trees Lexicographically,” by M. C. Er, ComputationJournal, Vol. 28, Issue 5, pp. 538-542, 1985.

As illustrated, for this particular embodiment, and as previouslydescribed, the empty tree has zero nodes and is associated with thezero. Likewise, the one node tree root comprises a single node and isassociated with the one. Thus, to obtain the tree at position two, aroot node is attached and connected to the prior root node by an edge.Likewise, here, by convention, the edge is labeled with a binary zero.If, however, the tree formed by the immediately proceeding approach werepresent in the prior enumeration of trees, then a similar processembodiment is followed, but, instead, the new edge is labeled with abinary one rather than a binary zero. Thus, for example, in order toobtain the binary edge labeled tree for position three, a new root nodeis connected to the root node by an edge and that edge is labeled with abinary one.

Continuing with this example, to obtain the binary edge labeled tree forposition four, observe that numeral four is the product of numeral twotimes numeral two. Thus, a union is formed at the root of two trees,where, here, each of those trees is associated with the positive naturalnumeral two. Likewise, to obtain the binary edge labeled tree forposition five, begin with the binary edge labeled tree for position twoand follow the previously articulated approach of adding a root and anedge and labeling it with a binary zero.

In this context, adding a root node and an edge and labeling it binaryzero is referred to as a “zero-push” operation and adding a root nodeand an edge and labeling it binary one is referred to as a “one-push”operation. Based at least in part on the prior description, for thisparticular embodiment, it may now be demonstrated that if k is anypositive natural numeral and a tree is positioned at location k, then anon-composite numeral is associated with the zero-push of that tree anda non-composite numeral is associated with the one-push for that tree.Furthermore, the non-composite index of the zero-push of the treecomprises 2k−1, whereas the non-composite index of the one-push of thetree comprises 2k, where the index corresponds to argument of theaforementioned well-known Kleene enumeration on positive naturalnumerals of non-composite numerals. Here, a zero-push of a treeassociated with natural numeral k provides a tree associated withP(2k−1) and a one-push of the tree associated with natural numeral kprovides a tree associated with P(2k). Thus, referring again to FIG. 24,the one-push of the root tree is the tree at position three. Thisfollows from FIG. 24 since P(2*1)=P(2)=3. Likewise, the tree at positionfive is the zero-push of the tree at position 2. Again, this followssince P(2*2−1)=P(3)=5.

The embodiments illustrate in FIGS. 14 through 20 involve connectingtags (BELT portions representing node label values and/or factorsthereof) to unlabeled nodes by edges having a label value associatedwith binary zero and assign an edge label value associated with binaryone to the remaining edges in the resulting BELT. In alternativeembodiments, however, such edges connecting tags may have a label valueassociated with binary one with the remaining edges having a label valueassociated with binary zero, although claimed subject matter is notlimited in these respects.

Also, the transformations illustrated above with reference to FIGS. 14through 20 are particularly directed to transforming an unlabeled treeand/or a node labeled tree to a BELT. However, it should be recognizedthat, as a BLT may essentially be represented as either a BELT or aBNLT, such techniques illustrated herein would equally apply to therepresentation of hierarchical data of an unlabeled tree and/or nodelabeled tree in a BNLT.

It will, of course, be understood that, although particular embodimentshave just been described, claimed subject matter is not limited in scopeto a particular embodiment or implementation. For example, oneembodiment may be in hardware, such as implemented to operate on adevice or combination of devices, for example, whereas anotherembodiment may be in software. Likewise, an embodiment may beimplemented in firmware, or as any combination of hardware, software,and/or firmware, for example. Likewise, although claimed subject matteris not limited in scope in this respect, one embodiment may comprise oneor more articles, such as a storage medium or storage media. Thisstorage media, such as, one or more CD-ROMs and/or disks, for example,may have stored thereon instructions, that when executed by a system,such as a computer system, computing platform, or other system, forexample, may result in an embodiment of a method in accordance withclaimed subject matter being executed, such as one of the embodimentspreviously described, for example. As one potential example, a computingplatform may include one or more processing units or processors, one ormore input/output devices, such as a display, a keyboard and/or a mouse,and/or one or more memories, such as static random access memory,dynamic random access memory, flash memory, and/or a hard drive. Forexample, a display may be employed to display one or more queries, suchas those that may be interrelated, and or one or more tree expressions,although, again, claimed subject matter is not limited in scope to thisexample.

In the preceding description, various aspects of claimed subject matterhave been described. For purposes of explanation, specific numbers,systems and/or configurations were set forth to provide a thoroughunderstanding of claimed subject matter. However, it should be apparentto one skilled in the art having the benefit of this disclosure thatclaimed subject matter may be practiced without the specific details. Inother instances, well-known features were omitted and/or simplified soas not to obscure claimed subject matter. While certain features havebeen illustrated and/or described herein, many modifications,substitutions, changes and/or equivalents will now occur to thoseskilled in the art. It is, therefore, to be understood that the appendedclaims are intended to cover all such modifications and/or changes asfall within the true spirit of claimed subject matter.

1-108. (canceled)
 109. A method, comprising: accessing instructions fromone or more physical memory devices for execution by one or moreprocessors; executing instructions accessed from the one or morephysical memory devices by the one or more processors; storing, in atleast one of the physical memory devices, signal values resulting fromhaving executed the instructions on the one or more processors; whereinthe accessed instructions to transform between a tree and an array ofnumerical signal values; and wherein executing the accessedtransformation instructions further comprising: transforming the tree tothe array of numerical signal values, based at least in part on aone-to-one mapping between tree structures and unique elementarynumerical signal values, the array of numerical signal values comprisingone or more rows and columns of numerical signal values and anassociated index for the one or more rows and columns of numericalsignal values; and storing the array of numerical signal values in theat least one or more physical memory devices.
 110. The method of claim109, wherein the array of numerical signal values comprises a condensedarray of numerical signal values representing the tree in a compressedformat.
 111. The method of claim 109, wherein executing the accessedtransformation instructions further comprises: associating numericallabel values with at least some nodes and/or edges in the tree; andassociating label values with at least some parent nodes of child nodesbased, at least in part, on non-composite numerical signal valuesderived, at least in part, from label values associated with the childnodes.
 112. The method of claim 111, wherein executing the accessedtransformation instructions further comprises pruning the child nodes.113. The method of claim 111, wherein a numerical label value associatedwith at least one of the parent nodes is based, at least in part, on acombination of non-composite numerical signal values derived, at leastin part, from label values associated with the child nodes.
 114. Themethod of claim 111, wherein executing the accessed transformationinstructions further comprises determining the non-composite numericalsignal values from an array of non-composite numerical signal valuesindexed by sequential indices.
 115. The method of claim 109, whereinexecuting the accessed transformation instructions further comprisesgenerating a resulting tree, wherein the generating the resulting treecomprises transforming the array of numerical signal values to a tree,based at least in part on the one-to-one mapping between the treestructures and the unique elementary numerical signal values.
 116. Themethod of claim 109, wherein executing the accessed transformationinstructions further comprises representing a parent node as a productof factors associated with one or more subtrees of the parent node. 117.The method of claim 109, wherein the transforming the tree to the arrayof numerical signal values comprises using digital signal values,responsive to executing the accessed transformation instructions, toselect one or more numerical label values for portions of the tree andwherein the tree comprises a complex two dimensional graphicalhierarchy, the complex two dimensional graphical hierarchy being in theform of a tree hierarchy.
 118. An apparatus comprising: means foraccessing instructions from one or more physical memory devices forexecution by one or more processors; means for executing instructionsaccessed from the one or more physical memory devices by the one or moreprocessors; means for storing, in at least one of the physical memorydevices, signals values resulting from having executed the instructionson the one or more processors; wherein the accessed instructions totransform between a tree and an array of numerical signal values; andwherein the means for executing the transformation instructionscomprises: means transforming the tree to the array of numerical signalvalues, based at least in part on a one-to-one mapping between treestructures and unique elementary numerical signal values, the array ofnumerical signal values comprising one or more rows and columns ofnumerical signal values and an associated index for the one or more rowsand columns of numerical signal values; and means for storing the arrayof numerical signal values in the one or more physical memory devices.119. The apparatus of claim 118, wherein the array of numerical signalvalues comprises a condensed array of numerical signal valuesrepresenting the tree in a compressed format.
 120. The apparatus ofclaim 118, wherein the means for executing the accessed transformationinstructions further comprises: means for associating numerical labelvalues with at least some nodes and/or edges in the tree; and means forassociating label values with at least some parent nodes of child nodesbased, at least in part, on non-composite numerical signal valuesderived, at least in part, from label values associated with the childnodes.
 121. The apparatus of claim 120, wherein executing the accessedtransformation instructions further comprises means for pruning thechild nodes.
 122. The method of claim 120, wherein a numerical labelvalue associated with at least one of the parent nodes is based, atleast in part, on a combination of non-composite numerical signal valuesderived, at least in part, from label values associated with the childnodes.
 123. The method of claim 118, wherein the means for executing theaccessed transformation instructions further comprises means forgenerating a resulting tree, wherein the generating the resulting treecomprises transforming the array of numerical signal values to a tree,based at least in part on the one-to-one mapping between the treestructures and the unique elementary numerical signal values.
 124. Anarticle comprising: a non-transitory storage medium comprisinginstructions stored thereon; wherein the instructions being accessiblefrom the non-transitory storage medium to store as physical memorystates on one or more physical memory devices, the one or more physicalmemory devices coupled to one or more processors able to execute theinstructions stored as physical memory states, the one or more physicalmemory devices also able to store binary digital signal quantities, ifany, as physical memory states, that are to result from execution of theinstructions on the one or more processors, wherein the executableinstructions to transform between a tree and an array of numericalsignal values; and wherein the transformation instructions further to:transform the tree to the array of numerical signal values, based atleast in part on a one-to-one mapping between tree structures and uniqueelementary numerical signal values, the array of numerical signal valuescomprising one or more rows and columns of numerical signal values andan associated index for the one or more rows and columns of numericalsignal values; and store the array of numerical signal values in amemory of the computing device;
 125. The article of claim 124, whereinthe array of numerical signal values comprises a condensed array ofnumerical signal values representing the tree in a compressed format.126. The article of claim 124, the transformation instructions beingfurther executable by the one or more processors to: associate numericallabel values with at least some nodes and/or edges in the tree; andassociate label values with at least some parent nodes of child nodesbased, at least in part, on non-composite numerical signal valuesderived, at least in part, from label values associated with the childnodes.
 127. The article of claim 126, the transformation instructionsbeing further executable by the one or more processors to prune childnodes.
 128. The article of claim 126, wherein a numerical label valueassociated with at least one of the parent nodes is to be based, atleast in part, on a combination of non-composite numerical signal valuesto be derived, at least in part, from label values to be associated withthe child nodes.
 129. The article of claim 124, the transformationinstructions being further executable by the one or more processors togenerate a resulting tree, wherein to generate the resulting treecomprises to transform the array of numerical signal values to a tree,based at least in part on the one-to-one mapping between the treestructures and the unique elementary numerical signal values.
 130. Anapparatus comprising: one or more processors coupled to one or morephysical memory devices to store executable instructions and to storebinary digital storage quantities as physical memory states, wherein theexecutable instructions being accessible from the one or more physicalmemory devices for execution by one or more processors; and the one ormore processors able to store in at least one of the physical memorydevices, binary digital signal quantities, if any, that are to resultfrom execution of the instructions on the one or more processors,wherein the accessed executable instructions to transform between a treeand an array of numerical signal values; and wherein the transformationinstructions further to: transform the tree to the array of numericalsignal values, based at least in part on a one-to-one mapping betweentree structures and unique elementary numerical signal values, the arrayof numerical signal values comprising one or more rows and columns ofnumerical signal values and an associated index for the one or more rowsand columns of numerical signal values; and store the updated array ofnumerical signal values in one of the memory devices of the one or morephysical memory devices of the computing device.
 131. The apparatus ofclaim 130, wherein the array of numerical signal values comprises acondensed array of numerical signal values representing the tree in acompressed format.
 132. The apparatus of claim 130, the transformationinstructions being further executable to: associate numerical labelvalues with at least some nodes and/or edges in the tree; and associatelabel values with at least some parent nodes of child nodes based, atleast in part, on non-composite numerical signal values derived, atleast in part, from label values associated with the child nodes. 133.The apparatus of claim 132, the transformation instructions beingfurther executable to prune child nodes.
 134. The apparatus of claim132, wherein a numerical label value associated with at least one of theparent nodes is to be based, at least in part, on a combination ofnon-composite numerical signal values to be derived, at least in part,from label values to be associated with the child nodes.
 135. Thearticle of claim 130, the transformation instructions being furtherexecutable to generate a resulting tree, wherein to generate theresulting tree comprises to transform the array of numerical signalvalues to a tree, based at least in part on the one-to-one mappingbetween the tree structures and the unique elementary numerical signalvalues.